/**
 * 
 */
package model;

import java.sql.Timestamp;
import java.util.ArrayList;

/**
 * Die Klasse Arbeitspaket dient zum Speichern von Arbeitspaketdaten.
 * 
 * @author Elias Schildknecht
 *
 */
public class Arbeitspaket {
	
	private int id;
	private String titel;
	private Timestamp starttermin;
	private Timestamp endtermin;
	private float erledigteStunden;
	private String projektTitel;
	private String benutzername;
	private String arbeitspaketoption;
	private String tag;
	private int projekt_id;
	
	public Arbeitspaket(int id, String titel, Timestamp starttermin, Timestamp endtermin, float erledigteStunden, String projektTitel, String benutzername, String arbeitspaketoption, int projekt_id){
		this.id = id;
		this.titel = titel;
		this.starttermin = starttermin;
		this.endtermin = endtermin;
		this.erledigteStunden = erledigteStunden;
		this.projektTitel = projektTitel;
		this.benutzername = benutzername;
		this.arbeitspaketoption = arbeitspaketoption;
		this.tag = titel;
		this.projekt_id = projekt_id;
	}

	/**
	 * @return the arbeitspaketoption
	 */
	public String getArbeitspaketoption() {
		return arbeitspaketoption;
	}

	/**
	 * @param arbeitspaketoption_ID the arbeitspaketoption_ID to set
	 */
	public void setArbeitspaketoption(String arbeitspaketoption) {
		this.arbeitspaketoption = arbeitspaketoption;
	}

	/**
	 * @return the id
	 */
	public int getId() {
		return id;
	}

	/**
	 * @return the titel
	 */
	public String getTitel() {
		return titel;
	}

	/**
	 * @return the starttermin
	 */
	public Timestamp getStarttermin() {
		return starttermin;
	}

	/**
	 * @return the endtermin
	 */
	public Timestamp getEndtermin() {
		return endtermin;
	}

	/**
	 * @param starttermin the starttermin to set
	 */
	public void setStarttermin(Timestamp starttermin) {
		this.starttermin = starttermin;
	}

	/**
	 * @param endtermin the endtermin to set
	 */
	public void setEndtermin(Timestamp endtermin) {
		this.endtermin = endtermin;
	}

	/**
	 * @return the erledigteStunden
	 */
	public float getErledigteStunden() {
		return erledigteStunden;
	}

	/**
	 * @param id the id to set
	 */
	public void setId(int id) {
		this.id = id;
	}

	/**
	 * @param titel the titel to set
	 */
	public void setTitel(String titel) {
		this.titel = titel;
	}

	/**
	 * @param erledigteStunden the erledigteStunden to set
	 */
	public void setErledigteStunden(float erledigteStunden) {
		this.erledigteStunden = erledigteStunden;
	}

	/**
	 * @return the projektTitel
	 */
	public String getProjektTitel() {
		return projektTitel;
	}

	/**
	 * @return the benutzername
	 */
	public String getBenutzername() {
		return benutzername;
	}

	/**
	 * @param projektTitel the projektTitel to set
	 */
	public void setProjektTitel(String projektTitel) {
		this.projektTitel = projektTitel;
	}

	/**
	 * @param benutzername the benutzername to set
	 */
	public void setBenutzername(String benutzername) {
		this.benutzername = benutzername;
	}

	public void setTag(String tag){
		this.tag = tag;
	}

	public String getTag(){
		return this.tag;
	}

	@Override
	public String toString(){
		return this.tag;
	}
	
	public String getTimeWorkedOnAP() {
		int time, hours, minutes, seconds;
		String h, m, s;
		
		
		time = DBAnbindung.getInstance().getTimeWorkedOnAP(this.id);
		
		seconds = time % 60;
		time /= 60;
		s = String.valueOf(seconds);
		if (seconds < 10) {
			s = "0" + s;
		}
				
		minutes = time % 60;
		time /= 60;
		m = String.valueOf(minutes);
		if (minutes < 10) {
			m = "0" + m;
		}
		
		hours = time;
		h = String.valueOf(hours);
		if (hours < 10) {
			h = "0" + h;
		}
		
		return h + ":" + m + ":" + s;		
	}

	public ArrayList<int[]> getSessions() {
		return DBAnbindung.getInstance().getSessionsWorkedOnAP(this.id);
	}
	
	/**
	 * @return the projekt_id
	 */
	public int getProjekt_id() {
		return projekt_id;
	}
}
